package com.jme3.app;

import android.app.Activity;
import com.jme3.app.android.AndroidApplication;
import com.jme3.input.android.AndroidInput;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.niftygui.NiftyJmeDisplay;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.scene.shape.Quad;

import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;

import java.util.logging.Logger;

public class MyApp extends AndroidApplication implements ScreenController
{
    private final static Logger logger = Logger.getLogger(MyApp.class.getName());
    
    private Nifty nifty;
    
    public MyApp() 
    {
        super();
    }    
    public MyApp(Activity activity, AndroidInput input) 
    {
        super(activity, input);
    }
        
    @Override
    public void init() 
    {           
        Box b = new Box(Vector3f.ZERO, 1, 1, 1);
        Geometry geom = new Geometry("Box", b);
        Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
        mat.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg"));
        geom.setMaterial(mat);
        rootNode.attachChild(geom);
        
        NiftyJmeDisplay niftyDisplay = new NiftyJmeDisplay(assetManager,
                inputManager,
                audioRenderer,
                guiViewPort);
        nifty = niftyDisplay.getNifty(); 

        nifty.fromXml("com/jme3/app/hellojme.xml", "start", this);

        // attach the nifty display to the gui view port as a processor
        guiViewPort.addProcessor(niftyDisplay); 
    }
    
    // Nifty events
    public void bind(Nifty nifty, Screen screen) 
    {
        logger.info("bind( " + screen.getScreenId() + ")");
    }

    public void onStartScreen() 
    {
        logger.info("onStartScreen");
    }

    public void onEndScreen() 
    {
        logger.info("onEndScreen");
    }

    public void quit()
    {
        nifty.gotoScreen("end");
    }
}
